mod cliopts;
mod process;
mod utils;
pub use cliopts::{
    Base64Format, Base64SubCommand, BaseDecodeOpts, BaseEncodeOpts, CliSubCommand, CsvOpts,
    GenpassOpts, HttpServeOpts, HttpSubCommand, Opts, TextKeyGenerateOpts, TextSignFormat,
    TextSignOpts, TextSubCommand, TextVerifyOpts,
};
use enum_dispatch::enum_dispatch;
pub use process::{
    process_csv, process_decode, process_encode, process_genpass, process_http_serve,
    process_text_generate, process_text_sign, process_text_verify,
};
pub use utils::*;

#[allow(async_fn_in_trait)]
#[enum_dispatch]
pub trait CmdExector {
    async fn execute(self) -> anyhow::Result<()>;
}
